package com.lp.biz.content.service;

import com.lp.biz.content.model.entity.BizCoreContent;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lp.biz.content.model.query.CourseQuery;
import com.lp.biz.content.model.query.FamousQuery;
import com.lp.biz.content.model.query.ReadingQuery;
import com.lp.biz.content.model.query.StoryQuery;
import com.lp.biz.content.model.vo.*;
import com.lp.common.entity.PageParams;
import com.lp.common.utils.CommonResult;

/**
 * BizCoreContent 服务类
 * @program: backend
 * @author Ke.Song
 * @since 2024-05-31 23:14:47
 */
public interface BizCoreContentService extends IService<BizCoreContent> {

    /**
     * 获取共读会列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getReadingList(ReadingQuery query);

    /**
     * 创建共读会
     * @param reading 共读会参数
     */
    void addOrUpdateReading(Reading reading);

    /**
     * 共读会上架/下架
     * @param readingId 共读会id
     */
    void readingDisplay(Integer readingId);

    /**
     * 删除共读会
     * @param readingId 共读会id
     */
    void deleteReading(Integer readingId);

    /**
     * 获取共读会详情
     * @param readingId 共读会id
     * @return 查询结果
     */
    CommonResult getReading(Integer readingId);

    /**
     * 添加经典语录
     * @param famous 添加参数
     */
    void addOrUpdateFamous(Famous famous);

    /**
     * 获取经典语录
     * @param famousId id
     * @return 查询结果
     */
    CommonResult getFamous(Integer famousId);

    /**
     * 获取经典语录
     * @param famousId id
     */
    void deleteFamous(Integer famousId);

    /**
     * 获取经典语录列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getFamousList(FamousQuery query);

    /**
     * 获取听故事列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getStories(StoryQuery query);

    /**
     * 听故事上架/下架
     * @param storyId 故事id
     */
    void displayStory(Integer storyId);

    /**
     * 删除听故事
     * @param storyId 故事id
     */
    void deleteStory(Integer storyId);

    /**
     * 获取听故事详情
     * @param storyId 故事id
     * @return 查询结果
     */
    CommonResult getStory(Integer storyId);

    /**
     * 创建听故事
     * @param story 听故事参数
     */
    void addOrUpdateStory(Story story);

    /**
     * 获取媒体听故事列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getDailyStoryList(StoryQuery query);

    /**
     * 删除每日故事
     * @param storyId 故事id
     */
    void deleteDailyStory(Integer storyId);

    /**
     * 每日故事上架/下架
     * @param storyId 故事id
     */
    void dailyStoryDisplay(Integer storyId);

    /**
     * 创建每日故事
     * @param daily 每日故事参数
     */
    void addOrUpdateDailyStory(Daily daily);

    /**
     * 获取每日故事
     * @param dailyId 每日故事id
     * @return 处理结果
     */
    CommonResult getDailyStory(Integer dailyId);

    /**
     * 创建课程
     * @param params 创建参数
     */
    void addOrUpdateCourse(Course params);

    /**
     * 获取课程列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getCourses(CourseQuery query);

    /**
     * 获取课程详情
     * @param courseId 课程id
     * @return 查询结果
     */
    CommonResult getCourseDetail(Integer courseId);

    /**
     * 删除课程
     * @param courseId 课程id
     */
    void deleteCourse(Integer courseId);

    /**
     * 更新课程上架/下架
     * @param courseId 课程id
     */
    void updateCourseStatus(Integer courseId);

    /**
     * 增加课程章节
     * @param courseId 课程id
     * @param chapter  章节参数
     */
    void addOrUpdateChapter(Integer courseId, Chapter chapter);

    /**
     * 更新章节上架/下架
     * @param chapterId 章节id
     */
    void updateChapterStatus(Integer chapterId);

    /**
     * 获取章节详情
     * @param chapterId 章节id
     * @return 查询结果
     */
    CommonResult getChapterDetail(Integer chapterId);

    /**
     * 获取章节列表
     *
     * @param query    查询参数
     * @param courseId 课程id
     * @return 查询结果
     */
    CommonResult getChapterList(PageParams query, Integer courseId);

    /**
     * 删除章节
     * @param chapterId 章节id
     */
    void deleteChapter(Integer chapterId);

}
